package com.fq.api.api;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;

/**
 * @Author 超chao
 * @Description
 *  全局错误码定义，用于定义接口的响应数据，
 *  枚举名称全部使用代码命名，在系统中调用，免去取名难的问题。
 * @Date 2024/10/12/周六 14:05
 * @Version 1.0
 */
@NoArgsConstructor
@AllArgsConstructor
public enum ApiError {

    // *************************通用相关***************************** //

    /**
     * 全局
     */
    ERROR_10010007("不支持的类型！"),
    ERROR_10010010("数据解密失败！"),
    ERROR_10010011("请求失效！"),
    ERROR_10010012("数据加密失败"),


    /**
     * 账号相关
     */
    ERROR_10020001("您还未登录，请先登录！"),
    ERROR_10020003("账号或密码错误，请重新输入！"),
    ERROR_10020004("用户不存在，请确认！"),
    ERROR_10020010("您的账号已被禁用，暂不可使用服务！"),
    ERROR_10020020("账户或密码不可为空！"),
    ERROR_10020024("您的账号在其他地方登录了！"),
    ERROR_10020025("验证码不可为空！"),

    /**
     * 权限相关
     */
    ERROR_10030000("您无权执行此操作，请联系管理员！"),
    ERROR_10030001("普通用户暂时不可授予权限！"),


    /**
     * 角色相关
     */
    ERROR_10040001("至少要包含一个角色！"),
    ERROR_10040002("角色ID不存在，请先添加后再继续！"),
    ERROR_10040003("角色被使用，无法完成操作！"),
    ERROR_10040004("不可操作超级管理员！"),
    ERROR_10040005("不可操作普通用户！"),
    ERROR_10040006("当前角色为系统默认角色，无法删除！！"),
    ERROR_10040007("当前角色有用户关联，删除后可能导致用户权限异常。请先转移或解绑用户，再尝试删除操作！"),

    /**
     * 菜单相关
     */
    ERROR_10050001("请先删除下级菜单！"),

    /**
     * 菜单相关
     */
    ERROR_10060001("菜单名称已存在，请更换！"),

    ;


    public String msg;

    /**
     * 获取错误码
     *
     * @return
     */
    public Integer getCode() {
        return Integer.parseInt(this.name().replace("ERROR_", ""));
    }
}
